The present invention relates to electronic musical instruments and more particularly to signal processing of musical audio signals to provide expanded spectral content.
Throughout the evolution of electronic music, it has been desirable to modify the sounds of electronic musical instruments, such as keyboards and guitars, to increase the harmonic content in a musically useful way. Typically the amount of added harmonic content is dependent on the amplitude of the original signal. This has been accomplished using processing features inherent in analog technology processors employing vacuum tubes and diodes to produce distortion or "fuzz."
In general, the source of the increased harmonic content is a non-linear transfer function. Thus the limiting or "clipping" phenomenon found in most analog amplifiers has been used as a source of increased harmonic content in music, and subsequently the same basic techniques have been employed in devices specifically designed for the purpose of producing such distortions.
More recently, digital electronic techniques have been applied to the problem. U.S. Pat. No. 4,991,218 discusses table lookup techniques for producing such non-linear transfer functions. While such techniques are in theory completely general in their capacity for producing transfer functions, it is found that to generate certain desirable transfer functions such techniques are not practical or efficient.
A look-up table may be reduced in size by combining an interpolation step with two look-up steps. The instruction set of many general purpose digital signal processors (DSP's) requires ten to twenty instructions to implement a table lookup algorithm when table compression techniques are employed to make the data size manageable. Furthermore, when interpolation is utilized, it becomes impossible to generate abrupt discontinuities.
Another digital technique previously employed (for instance see Digital Wave-Shaping Synthesis, Marc Le Brun, Journal of the Audio Engineering Society, April 1979, Vol. 27, No. 4) uses Tchebyschev functions to approximate an arbitrary non-linear transfer function. This approach also has difficulties similar to those associated with table lookup techniques in that in order to represent a discontinuity with Tchebyschev functions requires an infinite series. A good approximation typically requires a 4th or 5th order series for each discontinuity. In some desirable non-linear transfer functions there are as many as 32 discontinuities, thereby necessitating a 128th order polynomial to accurately represent the transfer function. Even a much smaller order polynomial takes numerous DSP instructions to compute. Hence, the use of Tchebyschev functions also has undesirable computational complexity and lacks the ability to accurately represent discontinuities.